---
title: Introduction
description: Replibyte is a tool to seed your development database with your production data while keeping sensitive data safe
hide_title: true
sidebar_position: 1
---

import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from "@docusaurus/useBaseUrl";

<ThemedImage
  alt="Replibyte logo"
  sources={{
    light: useBaseUrl('/img/full_logo_light.svg'),
    dark: useBaseUrl('/img/full_logo.svg'),
  }}
/>

Replibyte is a blazingly fast tool to seed your databases with your production data while keeping sensitive data safe ⚡️

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
![stability badge](https://img.shields.io/badge/stability-stable-green.svg?style=flat-square)
![build and tests badge](https://github.com/Qovery/replibyte/actions/workflows/build-and-test.yml/badge.svg?style=flat-square)
[![discord server](https://img.shields.io/discord/688766934917185556?label=discord&style=flat-square)](https://discord.qovery.com)

## Prerequisites

- MacOSX / Linux / Windows
- Nothing more! Replibyte is stateless and does not require anything special.

## Usage

Create a dump

```shell
replibyte -c conf.yaml dump create
```

List all dumps

```shell
replibyte -c conf.yaml dump list

type          name                  size    when                    compressed  encrypted
PostgreSQL    dump-1647706359405    154MB   Yesterday at 03:00 am   true        true
PostgreSQL    dump-1647731334517    152MB   2 days ago at 03:00 am  true        true
PostgreSQL    dump-1647734369306    149MB   3 days ago at 03:00 am  true        true
```

Restore the latest dump in a local container

```shell
replibyte -c conf.yaml dump restore local -v latest -i postgres -p 5432
```

Restore the latest dump in a remote database

```shell
replibyte -c conf.yaml dump restore remote -v latest
```

## Features

- [x] Support data backup and restore for PostgreSQL, MySQL and MongoDB
- [x] Replace sensitive data with fake data
- [x] Works on large database (> 10GB)
- [x] Database Subsetting: Scale down a production database to a more reasonable size 🔥
- [x] Start a local database with the prod data in a single command 🔥
- [x] On-the-fly data (de)compression (Zlib)
- [x] On-the-fly data de/encryption (AES-256)
- [x] Fully stateless (no server, no daemon) and lightweight binary 🍃
- [x] Use custom transformers

Here are the features we plan to support

- [ ] Auto-detect and version database schema change
- [ ] Auto-detect sensitive fields
- [ ] Auto-clean backed up data

## Getting Started

* [How Replibyte works](/docs/how-replibyte-works)
* Initial setup:
  1. [Install](/docs/getting-started/installation)
  2. [Configure](/docs/getting-started/configuration)
* Step-by-step guides:
  1. [Create a dump](/docs/guides/create-a-dump)
  2. [Restore a dump](/docs/guides/restore-a-dump)
  3. [Subset a dump](/docs/guides/subset-a-dump)
  4. [Delete a dump](/docs/guides/delete-a-dump)
  5. Deploy Replibyte
      1. [Container](https://www.replibyte.com/docs/guides/deploy-replibyte/container)
      2. [Qovery](https://www.replibyte.com/docs/guides/deploy-replibyte/qovery)

## Demo

[![What is RepliByte](../../assets/video_.png)](https://www.youtube.com/watch?v=IKeLnZvECQw)

## Motivation

At [Qovery](https://www.qovery.com) (the company behind Replibyte), developers can clone their applications and databases just with one
click. However, the cloning process can be tedious and time-consuming, and we end up copying the information multiple times. With RepliByte,
the Qovery team wants to provide a comprehensive way to seed cloud databases from one place to another.

The long-term motivation behind RepliByte is to provide a way to clone any database in real-time. This project starts small, but has big
ambition!
